package common

import "fmt"

// Cpt001User
// 包还可以让我们通过控制哪些名字是外部可见的来隐藏内部实现信息。
// 一个简单的规则是：如果一个名字是大写字母开头的，那么该名字是导出的
// 包括、字段、变量、type、方法等均参考此规则
type Cpt001User struct {
	Id   int    `json:"id"`   // 大写开头，外部可以访问
	Name string `json:"name"` // 大写开头，外部可以访问
	age  int    `json:"age"`  // 小写开头，外部无法访问，外部也无法转json
}

type Celsius float64
type Fahrenheit float64

const (
	AbsoluteZeroC Celsius = -273.15
	FreezingC     Celsius = 0
	BoilingC      Celsius = 100
)

func (c Celsius) String() string {
	return fmt.Sprintf("%g°C", c)
}

func (f Fahrenheit) String() string {
	return fmt.Sprintf("%g°F", f)
}
